[tool.poetry]
name = "gigachain-monorepo"
version = "0.0.1"
description = "LangChain mono-repo"
authors = []
license = "MIT"
readme = "README.md"
repository = "https://www.github.com/ai-forever/gigachain"


[tool.poetry.dependencies]
python = ">=3.8.1,<4.0"

[tool.poetry.group.docs.dependencies]
gigachain = { path = "libs/langchain/", develop = true }
autodoc_pydantic = "^1.8.0"
myst_parser = "^0.18.1"
nbsphinx = "^0.8.9"
sphinx = "^4.5.0"
sphinx-autobuild = "^2021.3.14"
sphinx_book_theme = "^0.3.3"
sphinx_rtd_theme = "^1.0.0"
sphinx-typlog-theme = "^0.8.0"
sphinx-panels = "^0.6.0"
toml = "^0.10.2"
myst-nb = "^0.17.1"
linkchecker = "^10.2.1"
sphinx-copybutton = "^0.5.1"
nbdoc = "^0.0.82"

[tool.poetry.group.lint.dependencies]
ruff = "^0.1.5"
gigachain-core = { path = "libs/core/", develop = true }
gigachain-text-splitters = { path = "libs/text-splitters", develop = true }
gigachain-community = { path = "libs/community/", develop = true }
gigachain = { path = "libs/langchain/", develop = true }
gigachain-experimental = { path = "libs/experimental/", develop = true }
gigachain-openai = { path = "libs/partners/openai", develop = true }

[tool.poetry.group.codespell.dependencies]
codespell = "^2.2.0"


[tool.poetry.group.dev.dependencies]
gigachain-core = { path = "libs/core/", develop = true }
gigachain-text-splitters = { path = "libs/text-splitters", develop = true }
gigachain-community = { path = "libs/community/", develop = true }
gigachain = { path = "libs/langchain/", develop = true }
gigachain-experimental = { path = "libs/experimental/", develop = true }
gigachain-openai = { path = "libs/partners/openai", develop = true }
ipykernel = "^6.29.2"

[tool.poetry.group.test.dependencies]

[tool.poetry.group.test_integration.dependencies]

[tool.poetry.group.typing.dependencies]

[tool.codespell]
skip = '.git,*.pdf,*.svg,*.pdf,*.yaml,*.ipynb,poetry.lock,*.min.js,*.css,package-lock.json,example_data,_dist,examples,templates,*.trig'
# Ignore latin etc
ignore-regex = '.*(Stati Uniti|Tense=Pres).*'
# whats is a typo but used frequently in queries so kept as is
# aapply - async apply
# unsecure - typo but part of API, decided to not bother for now
ignore-words-list = 'momento,collison,ned,foor,reworkd,parth,whats,aapply,mysogyny,unsecure,damon,crate,aadd,symbl,precesses,accademia,nin'

[tool.ruff]
extend-include = ["*.ipynb"]
extend-exclude = [
    "docs/docs/expression_language/why.ipynb"  # TODO: look into why linter errors
]

[tool.ruff.lint.per-file-ignores]
"**/{cookbook,docs}/*" = [
    "E402",  # allow imports to appear anywhere in docs
    "F401",  # allow "imported but unused" example code
    "F811",  # allow re-importing the same module, so that cells can stay independent
    "F841",  # allow assignments to variables that are never read -- it's example code
]

# These files were failing the listed rules at the time ruff was adopted for notebooks.
# Don't require them to change at once, though we should look into them eventually.
"cookbook/gymnasium_agent_simulation.ipynb" = ["F821"]
"docs/docs/integrations/document_loaders/tensorflow_datasets.ipynb" = ["F821"]

